const path = require('path')

const resolve = dir => {
  return path.join(__dirname, dir)
}

module.exports = {
  /**
   * [publicPath 默认情况下，Vue CLI 会假设你的应用是被部署在一个域名的根路径上，例如 https://www.my-app.com/。如果应用被部署在一个子路径上，你就需要用这个选项指定这个子路径。例如，如果你的应用被部署在 https://www.my-app.com/my-app/，则设置 publicPath 为 /my-app/。
    这个值也可以被设置为空字符串 ('') 或是相对路径 ('./')，这样所有的资源都会被链接为相对路径，这样打出来的包可以被部署在任意路径，也可以用在类似 Cordova hybrid 应用的文件系统中。]
   * @type {String}
   */
  publicPath: '/bmap/', // 测试环境
  // publicPath: '/', // 正式环境

  /**
   * [lintOnSave 当lintOnSave 是一个 truthy 的值时，eslint-loader 在开发和生产构建下都会被启用。如果在生产构建时禁用 eslint-loader]
   * @type {boolean | 'error'}
   */
  lintOnSave: process.env.NODE_ENV !== 'production',

  /**
   * [productionSourceMap 不需要生产环境的 source map，可以将其设置为 false 以加速生产环境构建。]
   * @type {boolean}
   */
  productionSourceMap: false,

  /**
   * [chainWebpack 是一个函数，会接收一个基于 webpack-chain 的 ChainableConfig 实例。允许对内部的 webpack 配置进行更细粒度的修改。]
   * @param  {[Function]} config [description]
   * @return {[type]}        [description]
   */
  chainWebpack: config => {
    config.resolve.alias
      .set('@', resolve('src')) // key,value自行定义，比如.set('@@', resolve('src/components'))
      .set('images', resolve('src/assets/images'))
      .set('styles', resolve('src/assets/styles'))
      .set('js', resolve('src/assets/js'))
      .set('iconfont', resolve('src/assets/iconfont'))
  },

  /**
   * [devServer webpack-dev-server 相关配置]
   * @type {Object}
   */
  devServer: {
    // 这里写调用接口的基础路径，来解决跨域，如果设置了代理，本地开发环境的axios的baseUrl要写为 '' ，即空字符串
    // proxy: {
    //   '/api': {
    //     target: 'http://dev.gongde100.com', // 请求源地址
    //     ws: true, // 是否代理
    //     changeOrigin: true // 是否跨域
    //   }
    // }
  }
}
